#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>

int main()
{
    extern char** environ;
    putenv("PRIVATE_ENV=666666");
    pid_t id = fork();
    if (id == 0)
    {
        // child
        printf("before: I am a process, pid: %d, ppid: %d\n", getpid(), getppid());
        // 这类方法的标准写法
        execle("./otherExe", "otherExe", "-a", "-b", "-c", NULL, environ);
        // 注意后面有环境变量时，也一定要带NULL
        printf("after:  I am a process, pid: %d, ppid: %d\n", getpid(), getppid());
        exit(1);
    }

    // father
    pid_t ret = waitpid(id, NULL, 0);
    if (ret > 0)
    {
        printf("wait success, father pid: %d, ret id: %d\n", getpid(), ret);
    }
    sleep(5);
    return 0;
}


